Building a service which is not well-defined and incremental is difficult since new ideas and sub-applications can clutter the base application code base and take the focus away of each team from the application that they are designing.

It is therefore probably advisable to have a framework where multiple services can simply exist by themselves in their part of the server, use their own technologies and still be able to be part of the same base system/organization. It makes it easier for new developers/contributors to just make their application and provide them as a service to the user of the base system using only the bare minimum essentials from the base system. This makes a system scalable and robust at the same time.

Preferable requirements:
1. Authentication: Since the users use the same base system, we must have a single sign on, i.e. logging in to an user account only once on any of these services will enable the user to use all other services w/o a login when they visit them. Same is the thing with log out.

Options:
1. Single Sign On authentication servers
Kerberos based
One Time Password (OTP)
Smart card